<?php
function form_error($campo,$htmlAntes='',$htmlDepois='')
{
	$campo_for_sf = str_replace(array('[', ']'), array('{', '}'), $campo);
  	$campo = str_replace(array('{', '}'), array('[', ']'), $campo);

	$request = sfContext::getInstance()->getRequest();
	$style = $request->hasError($campo_for_sf) ? '' : 'display:none;';
	$error = $request->getError($campo_for_sf);


	if($error)
	{
		if($request->getParameterHolder()->has('errosMostrados')) {
			$errosMostrados = $request->getParameterHolder()->get('errosMostrados');
		}
		else {
			$errosMostrados = array();
		}
		$errosMostrados[] = $campo_for_sf;

		$request->getParameterHolder()->set('errosMostrados',$errosMostrados);
		//$teste = $htmlAntes.content_tag('div', null, array('class'=>'error-left')).$htmlDepois;
		//$teste.= $htmlAntes.content_tag('div', $error, array('class'=>'error-inner')).$htmlDepois;
		//return $teste;
		return $htmlAntes.content_tag('span', $error, array('class'=>'mensagem_erro_form')).$htmlDepois."\n";
	}
	return '';
}

function form_field_class($campo) {
	$request = sfContext::getInstance()->getRequest();
	return $request->hasError($campo) ? 'titulo_campo_texto_erro' : 'titulo_campo_texto';
}

function preenche_mensagem_flash() {
	$request = sfContext::getInstance()->getRequest();
	if($request->hasErrors()) {
		$errosMostrados = $request->getParameterHolder()->get('errosMostrados',array());
		$msg_erro = '';
		foreach($request->getErrors() as $campo=>$erro) {
			if(!in_array($campo,$errosMostrados)) {
				$msg_erro .=  "Erro não mostrado: ".$campo.' :: '.$erro.'.';
			}
		}
		if($request->getParameterHolder()->has('errosMostrados')) {
			$msg_erro .= 'Por favor corrija os erros indicados.';
		}
		sfContext::getInstance()->getUser()->setFlash('erro', $msg_erro, false);
	}
}